Recently, a variety of information processing apparatuses, for example, personal computers (PC), large computers, servers, and other communication apparatuses, are connected to a communication network such as the Internet to transfer contents such video, image data, audio data, or various programs or to transfer various types of processing data among networked apparatuses. The types of contents transferred via a network have changed from text and still images to multimedia contents, such as moving image and audio, and the content sizes are getting significantly larger.
A large storage system is attracting attention in which data is distributed among many information processing terminals that are interconnected via a network for recording data thereon. In such a distributed storage system, a server responsible for recording and managing data transmits data to information processing terminals and other servers in multicast mode to record the data on local recording media provided on the information processing terminals and other servers.
In this case, a large amount of data must be recorded on a recording medium to allow data to be retrieved on an on-demand basis. For example, when a movie requires about 2 G bytes of data per one program, recording 500 programs of such video data requires a capacity of one terabyte or more.
In an example for providing data by streaming, when a server provides data by unicast to a client which requires data, in order to realize error-free transmission, a protocol that requires the retransmission of data such as an acknowledgement signal (ACK) of TCP/IP is used.
However, this method places a heavy load on the server and, therefore, even if one high performance server available today is used, it could serve only several hundreds of clients. Even when a protocol, such as UDP/IP, that does not use ACK is employed, only several thousands of clients can be served. Thus, an attempt to provide data by streaming increases the cost of the server side and limits the number of clients.
In recent years, a method that combines the multicast technology with FEC (Forward Error Correction) is proposed for transmitting data to a plurality of clients without requesting the retransmission of data. In this method, a server transmits a stream repeatedly in multicast mode, and a client selectively receives necessary signals from this stream, and decodes the selectively received data for reproducing.
Transmitting 500 programs of movie video data, each of which is 2 G bytes per program, within 10 minutes using this method requires the transmission band of about 14.7 G bits/second. In addition, transmitting the same amount of video data within one minute requires the transmission band of about 147 G bits/second. This is a theoretical value, and a server that satisfies this transmission amount and transmission method would be very costly and, even if implemented, it is impractical. Another method is to distribute data for recording among a plurality of hosts, but an attempt to implement this system would require a plurality of servers to manage a huge amount of data and therefore result in an increased amount of processing for data management or data communication.
Recently, a peer-to-peer (P2P: Peer-to-Peer) network technology is developed and used for direct communication processing between information processing apparatuses. This P2P network refers to a configuration in which, instead of installing a server that centrally performs processing, the information processing apparatuses that are resources of network clients, including various apparatuses such as a PC, a portable terminal, a PDA, a cellular phone, and, in addition, a disk that is storage means having a communication function or connected to a communication apparatus, or a printer, communicate with each other via a network to allow the resources of the network clients to be shared.
The peer-to-peer (P2P: Peer-to-Peer) network technology was first used in APPN (Advanced Peer to Peer Networking) proposed by IBM in US. Using this network eliminates the need for a huge delivery server to be installed for delivering contents in a conventional client-server network, allows many users to use contents distributed among the resources of the network clients, and allows a large amount of contents to be stored in distributed locations and to be delivered.
There are two peer-to-peer (P2P: Peer-to-Peer) network modes: “pure peer-to-peer (P2P: Peer-to-Peer) network” and “hybrid peer-to-peer (P2P: Peer-to-Peer) network”.
The pure peer-to-peer (P2P: Peer-to-Peer) network refers to a network mode in which the system components (peer) each have an equal function and role, and perform equal communication. A typical service using this network mode is Gnuterlla. The hybrid peer-to-peer (P2P: Peer-to-Peer) network refers to a network mode in which a control server is used for smoothing interoperation between the system components (peer) in addition to the pure peer-to-peer (P2P: Peer-to-Peer) network. A typical service using this network mode is Napster.
When a terminal connected to a network tries to obtain contents in the hybrid peer-to-peer (Hybrid P2P) method as typified by Napster, the central server first searches the contents resources, and based on the search information, the terminal accesses a node (another terminal connected to the network) having the resources, and obtains the contents. A disadvantage of this method is that resource information on all nodes must be registered with the central server and that the central server must centrally search for information.
To solve this problem, a method is proposed for distributing and executing processing such as resource search processing and the like among a plurality of apparatuses. In this processing distribution method, processing execution determination devices are managed, for example, by arranging them in a tree-like relation, and processing such as resource search is distributed and executed among a plurality of apparatuses based on the management information. However, as the number of apparatuses that execute processing increases, for example, to several millions, this method also has problems that the amount of information for managing the tree structure increases, that the number of processing commands for transmitting execution commands to the plurality of processing apparatuses increases, and that tree consistency must be guaranteed. This method also has a problem that a processing delay is caused because the plurality of processing execution determination apparatuses must perform determination processing.
To overcome those disadvantages, there is another method in which all commands are transmitted to all nodes connected to a network to allow the nodes to determine whether they will execute the received processing commands. This is the pure peer-to-peer (Pure P2P) method as represented by Gnutella. Unlike the hybrid peer-to-peer (Hybrid P2P) method, this method uses a configuration in which there is no central server that executes resource search processing and in which a search request is transferred directly among nodes to make a search for resources, and a processing request such as a content transmission request is issued to a terminal that is hit.
Even in this pure peer-to-peer (pure P2P) method as typified by Gnutella, an efficient configuration is the one in which a search is made through all nodes or as many nodes as possible by using the routing of a tree structure or a network structure when a search command is transmitted. However, this method also has a disadvantage in that a load is placed on the transmission path because the method requires a node to perform command transfer processing for a processing command that will not be executed in that node.
For example, to search for all network connection nodes to allow a processing request to arrive at all nodes, complex routing management is necessary. On the other hand, a node search in best-effort mode, if executed, does not guarantee that a command is transmitted to all nodes and sometimes fails to find required resources. Another problem is that frequent communication for searching for nodes generates network congestion.